課程資訊
課程名稱
虛擬機器
Virtual Machines 
開課學期
110-1 
授課對象
電機資訊學院  資訊工程學研究所  
授課教師
黎士瑋 
課號
CSIE5310 
課程識別碼
922 U4140 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期四7,8,9(14:20~17:20) 
上課地點
資111 
備註
外校生修課,需先email取得授課教師同意,始得選修。
限碩士班以上
總人數上限:40人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1101CSIE5310 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

虛擬化技術(Virtualization)在各種計算機系統領域都被用來創新解決問題的方法. 虛擬化是雲端運算(Cloud Computing)平台, 包括Amazon AWS, Google Cloud, 和Microsoft Azure實現上的技術核心, 讓用戶能在一套硬體系統上同時執行多個不同的虛擬機器(Virtual Machines), 大幅提昇伺服器硬體系統的使用效率, 並提供硬體的抽象化(Abstraction), 讓不同用戶的運算和資料有更好的隔離及保護. 虛擬機器監督器(Hypervisor/VM Monitor), 譬如KVM, Xen, Azure, VMware提供了虛擬機器介面的支持以及對系統資源的管理. 近日來容器(Containers)的技術實現了比傳統虛擬機器更輕量化, 更具拓展性的支援; 虛擬化技術也被應用在: 支援程式語言(Programming Language) 上, 包括高階語言虛擬機, 譬如JVM and DVM以有效解決程式移植的問題; 和支援計算機架構(Computer Architecture)上, 讓不相容的執行碼可以跨越平台使用. 這些虛擬化所使用的原理和技術, 被認為是計算機領域的硬體(Hardware), 軟體(Software), 應用(Application)之外的第四個應具備的學科訓練. 本課程將包含了對虛擬化技術的實現以及在各領域的創新應用上的介紹, 以及提供學生對當前虛擬化軟體使用與實作開發的經驗.

Course Info:
Welcome to the Virtual Machines course!

由於疫情關係, 本學期課程會以網路直播進行. 每週上課前會在NTU Cool當週課程資訊中公布直播連結. 

課程目標
本課程的設計專注在讓學生了解虛擬化基本的原理, 廣泛的應用, 實現的方法和效能的考量, 以及虛擬化技術在各領域的創新應用. 本課程除了基本原理和實作技術, 也搭配業界最新開發系統的實例.  
課程要求
Systems Programming, Operating Systems 
預期每週課後學習時數
 
Office Hours
每週四 10:00~12:00 備註: office hours 會在德田館531室進行. 若因疫情學生有需要需要遠距meeting, 請來信告知, thank you! 
指定閱讀
待補 
參考書目
教科書:
書名: Virtual Machines: Versatile Platforms for Systems and Processes
作者: James Smith and Ravi Nair
出版社: Morgan Kaufmann
出版年: 2005

參考書:
書名: Hardware and Software Support for Virtualization
作者: Edouard Bugnion, Jason Nieh, and Dan Tsafrir
出版社: Morgan & Claypool Publishers
出版年: 2017 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
9/23  Introduction to Virtual Machines 
第2週
9/30  Systems Virtual Machines: CPU Virtualization 
第3週
10/7  Systems Virtual Machines: Memory Virtualization 
第4週
10/14  Systems Virtual Machines: I/O, Interrupt, Timer Virtualization 
第5週
10/21  Review + Hypervisor Internals: KVM Walkthrough 
第6週
10/28  Hypervisor Internals: KVM Walkthrough 
第7週
11/4  Virtual Machines Performance 
第8週
11/11  Virtual Machines Management, Nested Virtualization 
第9週
11/18  Virtualization Security: Virtual Machine Introspection, Hypervisor based application/OS kernel protection, Midterm Review 
第10週
11/25  Midterm 
第11週
12/2  Virtual Machine Protection & Introduction to Containers 
第12週
12/9  Containers; Dockers, Kubernetes 
第13週
12/16  Virtual Machines v.s. Containers: Security and Performance 
第14週
12/23  Process Virtual Machines 
第15週
12/30  Process Virtual Machines 
第16週
1/6  Presentation 
第17週
1/13  Presentation 
第18週
1/20  Presentation